home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / t_sys5 / 92052tar.gz / 920528.tar / setsp.c < prev    next >
C/C++ Source or Header  |  1991-10-20  |  2KB  |  71 lines

  1. /* @(#) $Header: setsp.c,v 1.1 91/10/18 18:42:53 deyke Exp $ */
  2.  
  3. #ifdef __hp9000s300
  4.     text
  5.     global  _setstack
  6. _setstack:
  7.     mov.l   (%sp),%a0
  8.     mov.l   _newstackptr,%sp
  9.     jmp     (%a0)
  10. #endif
  11.  
  12. #ifdef __hp9000s800
  13.     .SPACE  $TEXT$,SORT=8
  14.     .SUBSPA $CODE$,QUAD=0,ALIGN=4,ACCESS=44,CODE_ONLY,SORT=24
  15. setstack
  16.     .PROC
  17.     .CALLINFO CALLER,FRAME=0
  18.     .ENTRY
  19.     ADDIL   LR'newstackptr-$global$,%r27    ;offset 0x0
  20.     LDW     RR'newstackptr-$global$(0,%r1),%r31     ;offset 0x4
  21.     BV      %r0(%r2)        ;offset 0xc
  22.     .EXIT
  23.     COPY    %r31,%r30       ;patch to set SP
  24.     .PROCEND ;
  25.  
  26.     .SPACE  $TEXT$
  27.     .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44,SORT=16
  28.     .SUBSPA $CODE$
  29.     .SPACE  $PRIVATE$,SORT=16
  30.     .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=16
  31. $THIS_DATA$
  32.  
  33.     .SUBSPA $SHORTDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24
  34. $THIS_SHORTDATA$
  35.  
  36.     .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
  37. $THIS_BSS$
  38.  
  39.     .SUBSPA $SHORTBSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=80
  40. $THIS_SHORTBSS$
  41.  
  42.     .SUBSPA $STATICDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=16
  43. $STATIC_DATA$
  44.  
  45.     .SUBSPA $SHORTSTATICDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24
  46. $SHORT_STATIC_DATA$
  47.  
  48.     .IMPORT $global$,DATA
  49.     .IMPORT newstackptr,DATA
  50.     .SPACE  $TEXT$
  51.     .SUBSPA $CODE$
  52.     .EXPORT setstack,ENTRY,PRIV_LEV=3
  53.     .END
  54. #endif
  55.  
  56. #ifdef ISC
  57.     .file   "setsp.s"
  58.     .version        "02.01"
  59.     .data
  60.     .text
  61.     .align  4
  62.     .def    setstack;       .val    setstack;       .scl    2;      .type   044;    .endef
  63.     .globl  setstack
  64. setstack:
  65.     movl    %esp, %ebp
  66.     movl    newstackptr, %esp
  67.     jmp     *(%ebp)
  68.     .def    setstack;       .val    .;      .scl    -1;     .endef
  69.     .data
  70. #endif
  71.